#ifndef __DEFS_H
#define __DEFS_H

/** Common goodies.
 * This file is the common place of macro and type definitions used all around
 * the code, for ease of reference.
 */

/** DEBUG.
 * This macro can be defined to either emit debug messages, or swallow them 
 * whole.
 */
// DEBUG ON:
//#define DEBUG(s) { cout << "DEBUG: " << s << endl; }
// DEBUG OFF:
#define DEBUG(s) { }
// INFO ON:
#define INFO(s) { cout << "INFO: " << s << endl; }
// INFO OFF:
//#define INFO(s) { }

/** RESULT.
 * This type is used to specify precision. Whatever class is capable of handling 
 * the four basic operators with long int on either side, can be used.
 */
typedef long double RESULT;

#endif
